﻿<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:tx="http://www.springframework.net/tx"
         xmlns:db="http://www.springframework.net/database"
         xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/schema/objects/spring-objects.xsd 
                             http://www.springframework.net/schema/tx http://www.springframework.net/schema/tx/spring-tx-1.1.xsd
                             http://www.springframework.net/schema/db http://www.springframework.net/schema/db/spring-database.xsd">

	<!--  ============================================================================================================================================= -->
	<!--  ****************************************************  Loading Custom AppConfig Section ****************************************************** -->
	<!--  ============================================================================================================================================= -->
	<object name="AppConfigPropertyHolder" type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
		<property name="configSections">
			<value>SyncroHost</value>
		</property>
	</object>

	<!--  ============================================================================================================================================= -->
	<!--  ****************************************************  Devices Configuration **************************************************************** -->
	<!--  ============================================================================================================================================= -->
	<object id="DataBaseConfiguration" type="BMS.Syncro.Devices.Configuration.DataBaseConfiguration, BMS.Syncro.Devices.Configuration" singleton="false"/>

	<!--  ============================================================================================================================================= -->
	<!--  *******************************************************  Syncro Object ********************************************************************** -->
	<!--  ============================================================================================================================================= -->
	<!--First invocation-->
	<!--SynchroVisitorHandler for store the fingerprint of a visitor in a specific device-->
	<object name="SyncroHandler" type="BMS.Syncro.Devices.Handler.DefaultVisitorSynchroHandler, BMS.Syncro.Devices.Handler" singleton="false">
		<property name="Persister" ref="DefaultVisitorSynchroPersister" />
		<property name="Configuration" ref="DataBaseConfiguration" />
	</object>

	<!--  ============================================================================================================================================= -->
	<!--  *******************************************************  Persister Object ************************************************************** -->
	<!--  ============================================================================================================================================= -->
	<!--Visitor persister-->
	<object name="DefaultVisitorSynchroPersister" type="BMS.Syncro.Devices.Persister.DefaultZKEMPersister, BMS.Syncro.Devices.Persister"  singleton="false" />

	<!--  ============================================================================================================================================= -->
	<!--  *******************************************************  Quartz Facade ************************************************************** -->
	<!--  ============================================================================================================================================= -->
	<!--Read the the information in the master device and begin the process for synchronize all the devices-->
	<object name="DefaultVisitorSynchroPersister" type="BMS.Syncro.Devices.Facade.QuartzFacadeMasterZKEMDevice, BMS.Syncro.Devices.Facade"  singleton="false" />

</objects>

